home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1998 September / Macworld (1998-09).dmg / Shareware World / Info / For Developers / MacZoop 1.8.3 / Required Classes / Z Headers / ZEventHandler.h < prev    next >
Text File  |  1998-05-29  |  2KB  |  83 lines

  1. /*************************************************************************************************
  2. *
  3. *
  4. *            MacZoop - "the framework for the rest of us"         
  5. *
  6. *
  7. *
  8. *            ZEventHandler.h        -- the event handler object
  9. *
  10. *
  11. *
  12. *
  13. *
  14. *            © 1996, Graham Cox
  15. *
  16. *
  17. *
  18. *
  19. *************************************************************************************************/
  20.  
  21. #pragma once
  22.  
  23. #ifndef __ZEVENTHANDLER__
  24. #define __ZEVENTHANDLER__
  25.  
  26. #include    <AppleEvents.h>
  27.  
  28.  
  29. class    ZWindow;
  30. class    ZCommander;
  31.  
  32.  
  33. class    ZEventHandler
  34. {
  35. protected:
  36.     short            clicks;                // number of mouse-clicks in a series
  37.     EventRecord        lastEvent;            // the event recovered from queue
  38.     Boolean            inBackground;        // TRUE if app in background
  39.     char            epPPCYokeDown;        // how many loops between WaitNextEvent() on PowerMac?
  40.     
  41.  
  42. public:
  43.  
  44.     ZEventHandler();
  45.     
  46.     virtual void    EstablishCurrentHandler();
  47.     virtual void    GetAnEvent( EventRecord* theEvent, const short mask = everyEvent );
  48.     virtual void    DispatchAnEvent( EventRecord* theEvent );
  49.     virtual void    InstallApplescriptHandlers();
  50.     virtual void    InstallAppleEventHandler( const AEEventClass pClass, const AEEventID pID );
  51.  
  52.     virtual void    HandleWindowUpdate( const WindowPtr theWindow );
  53.     virtual void    HandleWindowActivate( const WindowPtr theWindow, const Boolean state );
  54.     
  55. protected:
  56.     virtual void    CountClicks(const WindowPtr target, const long clickTicks, const Point globalMouse );
  57.     virtual void    HandleMouseEvent( const EventRecord& theEvent );
  58.     virtual void    HandleKeyEvent( const char theKey, const Boolean isAutoKey, short modifiers );
  59.     virtual void    PassIdle();
  60.     virtual void    HandleHLEvent( const EventRecord& theEvent);
  61.     virtual void    HandleOSEvent( const EventRecord& theEvent);
  62.     virtual Boolean    PrefilterDialogEvent( EventRecord* theEvent );
  63.  
  64. public:    
  65.     inline short    GetClicks(){ return clicks;};
  66.     inline Boolean    InBackground(){ return inBackground;};
  67.     inline void        GetLatestEvent( EventRecord* anEvent ) { *anEvent = lastEvent; };
  68. };
  69.  
  70.  
  71.  
  72. extern        short            gSleep;
  73. extern        ZCommander*        gCurHandler;
  74.  
  75.  
  76. #define        kFrontSleep        LMGetCaretTime()
  77. #define        kBackSleep        (kFrontSleep << 2)
  78.  
  79. // number of loops between calls to WaitNextEvent() on PowerPC:
  80.  
  81. #define        kPowerPCWNEYokeDown        32
  82.  
  83. #endif